package com.sunny.example;

import java.util.Scanner;

/**
 * 取近似值
 * 描述
 * 写出一个程序，接受一个正浮点数值，输出该数值的近似整数值。如果小数点后数值大于等于 0.5 ,向上取整；小于 0.5 ，则向下取整。
 * <p>
 * 数据范围：保证输入的数字在 32 位浮点数范围内
 * 输入描述：
 * <p>
 * 输入一个正浮点数值
 * 输出描述：
 * <p>
 * 输出该数值的近似整数值
 */
public class HJ7 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            float input = scanner.nextFloat();
//            int result = output1(input);
            int result = output2(input);
            System.out.println(result);

        }
    }

    /**
     * 方法二：直接将float强转为int
     *
     * @param input
     * @return
     */
    private static int output2(float input) {
        int pre = (int) input;
        float deta = input - pre;
        if (deta >= 0.5) {
            return pre + 1;
        }
        return pre;
    }

    /**
     * 方法一：采用String来分割
     *
     * @param input
     * @return
     */
    private static int output1(float input) {
        String strIn = Float.toString(input);
        String[] values = strIn.split("\\.");
        if (values == null || values.length == 0) return 0;
        int base = Integer.parseInt(values[0]);
        String suffix = "0." + values[1];
        float fS = Float.parseFloat(suffix);
        if (fS - 0.5 >= 0) {
            return base + 1;
        }
        return base;
    }
}
